Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
¿Por qué usar la palabra clave "usar" en PHP para importar identificadores principales?

A veces, en algunas bibliotecas como thephpleague/csv , veo la palabra clave use para importar identificadores centrales (por ejemplo, funciones, clases o constantes), pero no puedo entender por qué se importan.

Vea el siguiente ejemplo:

 use Generator; use SplFileObject; use function filter_var; use function get_class; use function mb_strlen; use function rawurlencode; use function sprintf; use function str_replace; use function str_split; use function strcspn; use function strlen; use const FILTER_FLAG_STRIP_HIGH; use const FILTER_FLAG_STRIP_LOW; use const FILTER_SANITIZE_STRING;

O más desde aquí .

Estas clases, funciones y constantes que se importan en este archivo pertenecen al núcleo de PHP, por lo que en realidad no necesitaríamos importarlas.

¿Por qué esta y otras bibliotecas importan estos?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Cuando estás en un espacio de namespace , cada nombre simple se refiere a un nombre dentro de ese espacio de nombres. Es decir:

 namespace Foo; echo bar();

bar aquí realmente significa Foo\bar .

Hay reglas para los respaldos a los nombres globales si el nombre no existe dentro de este espacio de nombres. Si no quiere confiar en esas reglas, o si realmente tiene esos nombres definidos en su espacio de nombres y no quiere tener que escribir constantemente \bar() explícitamente, es cuando puede use explícitamente esos nombres globales para que quede claro que bar se refiere a \bar y no a Foo\bar .

Probablemente no sea necesario la mayoría de las veces para los nombres integrados de PHP, pero tal vez el autor del proyecto simplemente lo haya establecido como regla para evitar errores debido a la ambigüedad en la resolución del espacio de nombres.

over 4 years ago · Santiago Trujillo Report

0

El objetivo con esto es realizar una (micro) optimización del rendimiento, como se describe aquí . ( Enlace archivado , por si acaso).

La idea es que al evitar la búsqueda de nombres globales y omitir las reglas de respaldo , se puede obtener algo de rendimiento.

Tenga en cuenta que con cualquier carga de trabajo de la vida real, estas ganancias son insignificantes e intrascendentes, y en su mayoría se vuelven irrelevantes debido al almacenamiento en caché del código de operación. Sin embargo, la ganancia de rendimiento, por pequeña que sea, existe.

Puede leer una discusión larga e interesante sobre esto:

  • Reddit discutiendo el artículo vinculado arriba
  • Proyecto Symfony que decide no aplicar esta optimización
  • Archivo Léame para un script que realiza esta optimización automáticamente
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!